在PHP、Ruby on Rails這些可以生成網頁的程式語言中,生成網頁這件事簡單來說就是生成html、CSS和Javascript這三種檔案後再回傳給前端。而web component本身不依賴任何javascript套件,所以在這些程式語言中使用web component沒有任何問題。
現在網頁的三大要素為HTML,CSS,javascript。但網頁技術一直以來都有一個問題,網頁最早的使用是為了靜態的資訊交流,就算後來加入了javascrpt。在現在愈來愈複雜的使用者需求和體驗上只靠javascrpt己經沒辦法滿足了。(不管是讀取js檔還是產生動畫效果),
WebAssembly以我的個人理解來說就像是另一種java,如果如果說java是用同一段code跑在不同的伺服器機器上。WebAssembly的目標就是同一段code可以跑在不同的客戶端機器上(當然啦,)。
WebAssembly和web component是很好的互補技術,WebAssembly讓web component得以使用javascript以外的方式來實做商業邏輯;web component可以很好的封裝WebAssembly成html元素
網路上的介紹如何同時使用WebAssembly和web component的文章這裡
藉由使用WebAssembly的編輯器,C、C++、Rust這些本來只能使用在伺服器上的程式語言也可以包入html元素內使用,這也讓前端能做的事變得更多了。比方說Figma的線上服務,或是線上轉檔服務。
MDN 的C語言轉換成WebAssembly的說明頁面這裡